#ifndef SELECTIONSTRATEGY_H_
#define SELECTIONSTRATEGY_H_

#include<QList>
#include "parameters.h"

class Chromosome;

/**
  * @author Łukasz Szybka
  */
class SelectionStrategy
{
public:
    //SelectionStrategy(const AbstractEnvironment& environment);
    virtual Chromosome* selectOne(const QList<Chromosome*>& chromosomeList) = 0;
    virtual void resetTempData();
protected:
    double countTotalGenerationFitness(const QList<Chromosome*>& chromosomeList);
    double countAverageGenerationFitness(const QList<Chromosome*>& chromosomeList);
};

#endif /*SELECTIONSTRATEGY_H_*/
